﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using QuanLyHocPhi.Entity;
using QuanLyHocPhi.DAL;
using QuanLyHocPhi.Util;

namespace QuanLyHocPhi
{
    public partial class frmThanhtoanphidt : DevComponents.DotNetBar.Metro.MetroForm
    {
        float soTienYeuCau = 0;
        private int MaHoadon { get; set; }
        public frmThanhtoanphidt(int maHd)
        {
            InitializeComponent();
            this.MaHoadon = maHd;
        }
        public frmThanhtoanphidt(HOA_DON hd, float soTienYeuCau)
        {
            InitializeComponent();
            this.hd = hd;
            this.soTienYeuCau = soTienYeuCau;

            // this.MaHoadon = maHd;
        }
        HOA_DON hd = new HOA_DON();
        TY_GIA tg = new TY_GIA();
        DOI_TUONG loaiPhi;
        MUC_PHI mp;
        TY_GIA_DAO tgDao = new TY_GIA_DAO();
        IList<DOI_TUONG> ds = null;
        DOI_TUONG_DAO dtDao = new DOI_TUONG_DAO();
        MUC_PHI_DAO daoMucPhi = new MUC_PHI_DAO();
        public frmThanhtoanphidt()
        {
            InitializeComponent();
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void frmThanhtoanphidt_Load(object sender, EventArgs e)
        {
            txtMasosv.Text = hd.SINH_VIEN.MA_SO_SV;
            txtTensv.Text = hd.SINH_VIEN.TEN_SV;
            //txtUSD.Text = soTienYeuCau.ToString();


            //cbbTendoituong.DataSource = new List<DOI_TUONG>() { hd.MA_LOAI_LOP };
           // cbbTendoituong.ValueMember = "MA_DOI_TUONG";
           // cbbTendoituong.DisplayMember = "TEN_DOI_TUONG";

            if (cbbTendoituong.Items.Count > 0) cbbTendoituong.SelectedItem = 0;

            tg = tgDao.GetRecentRate();
            if (tg != null)
            {
                txtTygia.Text = tg.TY_GIA_VND.ToString();
            }
            else
            {
                MessageBox.Show("Nhập tỷ giá", "Thông báo");
                btnXong.Enabled = false;
            }

            IList<string> dsDoiTuong = dtDao.GetAllObjectLOP();
            foreach (string dt in dsDoiTuong)
            {
                if (dt != "class_type")
                {
                    cbbLoailop.Items.Add(dt);
                }
            }

            txtMasosv.Text = hd.SINH_VIEN.MA_SO_SV;
           if(tg!=null) txtTygia.Text = tg.TY_GIA_VND.ToString();
        }

        private void btnXong_Click(object sender, EventArgs e)
        {
            int err = 0;
            float tmp = 0;
            float soTien = KieuDuLieu.Chuyensangsothuc(txtSotien.Text, out err);
            //kien tra
            if (cbbTendoituong.SelectedIndex < 0)
            {
                MessageBox.Show("Vui lòng chọn loại phí");
                return;
            }
            if (soTien != mp.TONG_TIEN)
            {
                if (MessageBox.Show("Số tiền nạp vào khác số yêu cầu, bạn có chắc muốn tiếp tục?", "Xác nhận", MessageBoxButtons.YesNo) != DialogResult.Yes)
                {
                    return;
                }
            }
            //thanh toan
            //HOA_DON_CT_DAO daoHoaDonCT = new HOA_DON_CT_DAO();
            BIEN_LAI_DAO daoBienLai = new BIEN_LAI_DAO();
                   
            BIEN_LAI bl = new BIEN_LAI()
            {
                NGAY_THU_PHI = DateTime.Now,
                MA_HOA_DON = hd,
                MA_MUC_PHI = mp,
                MA_PHI_DT = loaiPhi ,
                MA_TY_GIA = tg,
                SO_TIEN = soTien,
                GHI_CHU = txtGhichu.Text
            };
            daoBienLai.Insert(bl);
            this.Close();

            frmThanhtoanphidt_Load(sender, e);
        }

        private void cbbLoailop_SelectedIndexChanged(object sender, EventArgs e)
        {
            string lop = cbbLoailop.SelectedItem.ToString();
            if (lop != null)
            {
                ds = dtDao.GetObjectsByLOP(lop);
                
                cbbTendoituong.DataSource = ds;
            }
        }

        private void cbbTendoituong_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbbTendoituong.SelectedIndex > -1)
            {
                loaiPhi = ds[cbbTendoituong.SelectedIndex];
                IList<MUC_PHI> dsMucPhi = daoMucPhi.SelectByObjectId(loaiPhi.MA_DOI_TUONG);
                if (dsMucPhi.Count == 0)
                {
                    MessageBox.Show("Chưa định nghĩa mức phí");                   
                    btnXong.Enabled = false;
                    return;
                }
                mp = dsMucPhi[0];
                btnXong.Enabled = true;
                txtUSD.Text = dsMucPhi[0].TONG_TIEN.ToString();
                txtVND.Text = ((decimal)dsMucPhi[0].TONG_TIEN * tg.TY_GIA_VND).ToString();
            }
        }
    }
}